﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QLDL
{
    public partial class frmTuyen : Form
    {
        lib tv = new lib();
        bool luu;
        DataTable tb = new DataTable();
        public frmTuyen()
        {
            InitializeComponent();
        }

        private void frmTuyen_Load(object sender, EventArgs e)
        {
            LoadDefault();
        }

        public void setcontrols(bool an)
        {
            btnHuy.Enabled = an;
            btnLuu.Enabled = an;
            btnThem.Enabled = !an;
            btnSua.Enabled = !an;
            btnXoa.Enabled = !an;
            txtMaTuyen.Enabled = an;
            txtTenTuyen.Enabled = an;
            dgvTuyen.Enabled = !an;
        }

        //làm trắng controls
        public void setresets()
        {
            txtMaTuyen.ResetText();
            txtTenTuyen.ResetText();
        }

        //buoc1 load form
        public void LoadDefault()
        {
            try
            {
                setcontrols(false);
                setresets();
                string sql = "select MATUYEN as [Mã Tuyến], TENTUYEN as [Tên Tuyến] from TUYEN order by MATUYEN";
                tb = tv.taobang(sql);
                dgvTuyen.DataSource = tb;
                dgvTuyen.AutoResizeColumns();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Xảy ra lỗi, kiểm tra thông tin bên dưới\n" + ex.Message, "Lỗi hệ thống", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        //Buoc 2
        private void btnXoa_Click(object sender, EventArgs e)
        {
            DialogResult xoa;
            xoa = MessageBox.Show("Chắc Xóa\nTuyến: " + txtTenTuyen.Text + " ", "Thông Báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (xoa == DialogResult.OK)
            {
                try
                {
                    tv.truyvan("DELETE TUYEN where MATUYEN = '" + txtMaTuyen.Text + "'");
                    frmTuyen_Load(sender, e);
                    MessageBox.Show("Xóa thành công", "Thông báo");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Xóa Thất Bại. Thử Lại\n" + ex.Message, "Hệ thống lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            frmTuyen_Load(sender, e);
        }

        //Buoc 3
        private void btnThem_Click(object sender, EventArgs e)
        {
            setcontrols(true);
            luu = true;
            setresets();
        }

        //Buoc 4
        private void btnSua_Click(object sender, EventArgs e)
        {
            luu = false;
            setcontrols(true);
            txtMaTuyen.Focus();
        }

        private void dgvTuyen_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                txtMaTuyen.Text = this.dgvTuyen.Rows[e.RowIndex].Cells[0].Value.ToString();
                txtTenTuyen.Text = this.dgvTuyen.Rows[e.RowIndex].Cells[1].Value.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Xảy ra lỗi, kiểm tra thông tin bên dưới\n" + ex.Message, "Lỗi hệ thống", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            //Buoc 3.1 Them
            if (luu)
            {
                try
                {
                    //-------test lỗi----------------------------
                    //kiểm tra rỗng
                    if ((txtMaTuyen.Text == "") || (txtTenTuyen.Text == ""))
                    {
                        MessageBox.Show("Kiểm tra>>\nChưa nhập đầy đủ thông tin", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    //kiểm tra độ dài ký tự nhập
                    if (txtMaTuyen.Text.Length > 6 || txtTenTuyen.Text.Length > 50)
                    {
                        MessageBox.Show("Bạn đã nhập vượt số ký. Xin vui lòng nhập lại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                    //---------------------------kết thúc test lỗi
                    tv.truyvan("INSERT INTO TUYEN values('" + txtMaTuyen.Text.Trim() + "',N'" + txtTenTuyen.Text.Trim() + "')");
                    MessageBox.Show("Đã thêm\nTuyến: " + txtTenTuyen.Text + " ", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    frmTuyen_Load(sender, e);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Thêm thất bại. Thử lại\n" + ex.Message, "Hệ thống lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            //Buoc 4.1 Sua
            else if (!luu)
                try
                {
                    tv.truyvan("UPDATE TUYEN SET MATUYEN = '" + txtMaTuyen.Text.Trim() + "', TENTUYEN = N'" + txtTenTuyen.Text.Trim() + " ' where MATUYEN = '" + this.dgvTuyen.Rows[dgvTuyen.CurrentRow.Index].Cells[0].Value.ToString().Trim() + "'");
                    frmTuyen_Load(sender, e);
                    MessageBox.Show("Đã cập nhật", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Cập nhật thất bại. Thử lại\n" + ex.Message, "Hệ thống lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
        }
    }
}
